package Day4;

import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
/**
 * 2020JavaB真题:子串分值
 * https://www.lanqiao.cn/problems/499/learning/
 */
//这道题，我们采用的是考虑每个字符带来的贡献度进行计算的
//现在又一个字符串 ababc
//我们a字符的要有贡献度，那么这个字符串中所有的连续子串必须要有，某子串中a字符的个数为1，才可以
//当我们选出一段子串 babc,这里a的个数为1，想要计算这个子串中a的贡献度，就又要计算babc子串中a字符的个数为1的情况
//此时我们以a为标准 如果要a有一个字符，那么  a的前面的字符只有两种可能 (""，b) , 后面字符有三种可能 ("",b,bc)
//那么此时a的贡献度就为 2 * 3 = 6，因此我们其实可以发现这是此时的a到前一个a和后一个a的距离(我们默认babc两端为a,是b的前面和c的后面)
//那么每个字符的贡献度 = (该字符到上一个该字符的距离 * 到下一个该字符的距离)
public class Main1 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        String s = scan.next();
        char[] ch = s.toCharArray();
        int n = s.length();
        int count = 0;

        for(int i = 0; i < n; i++){
          int left = 0;
          int right = 0;
          char c = ch[i];
          //到上一个该字符的距离
          for(int j = i - 1; j >= 0 && c != ch[j]; j--){
            left++;
          }

          //到下一个该字符的距离
          for(int j = i + 1; j < n && c != ch[j]; j++){
            right++;
          }

          count += (left + 1) * (right + 1);
        }
        System.out.println(count);
        scan.close();
    }
}
